import argparse
import sys
from config import create_directories
from video_processor import (
    download_video,
    extract_audio,
    transcribe_audio,
    summarize_transcript
)

def main():
    """主函数, 用于编排整个视频处理流程."""
    # 首先, 创建所有需要的输出目录
    create_directories()

    # 设置命令行参数解析
    parser = argparse.ArgumentParser(description='Bilibili 视频内容总结工具.')
    parser.add_argument('video_url', type=str, help='需要处理的 Bilibili 视频 URL.')
    
    # 如果没有提供参数, 打印帮助信息
    if len(sys.argv) == 1:
        parser.print_help(sys.stderr)
        sys.exit(1)

    args = parser.parse_args()
    video_url = args.video_url

    try:
        # 步骤 1: 下载视频
        video_path = download_video(video_url)

        # 步骤 2: 提取音频
        audio_path = extract_audio(video_path)

        # 步骤 3: 转录音频
        transcript_path = transcribe_audio(audio_path)

        # 步骤 4: 总结文本
        summary_path = summarize_transcript(transcript_path)

        print("\n========================================")
        print("🎉 全部流程处理完成!")
        print(f"📄 最终总结报告已保存至: {summary_path}")
        print("========================================\n")
        
        # 打印总结内容
        with open(summary_path, 'r', encoding='utf-8') as f:
            print(f.read())

    except Exception as e:
        print(f"\n[-] 处理过程中发生严重错误: {e}", file=sys.stderr)
        sys.exit(1)

if __name__ == '__main__':
    main()